package net.goutalk.glcs.module.magicapi.service;

import net.goutalk.glcs.module.magicapi.vo.MagicApiGroupTreeVo;
import net.goutalk.glcs.module.magicapi.vo.MagicApiInfoVo;
import net.goutalk.glcs.module.magicapi.vo.MagicApiTreeVo;

import java.util.List;

public interface IMagicApiService {

    /**
     * 分组以及api 树结构
     * @return
     */
    List<MagicApiTreeVo> tree(String keyword);

    /**
     * 分组树
     * @return
     */
    List<MagicApiGroupTreeVo> groupTree();

    /**
     * 根据 id 获取 接口信息
     * @param id
     * @return
     */
    MagicApiInfoVo info(String id);

    /**
     * 根据分组查询所有接口
     * @param groupId
     * @return
     */
    List<MagicApiInfoVo> list(String groupId);

    /**
     * 执行API
     * @param id 接口id
     * @param <T>
     * @return
     */
    <T> T executeApi(String id);
}
